package com.example.spinning.mapper;

import com.example.spinning.bean.Module;
import com.example.spinning.bean.Organ;
import com.example.spinning.bean.Role;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 角色管理
 */
@Mapper
public interface RoleMapper {
    //添加用户的角色
    int addRoles(@Param("roles") String[] roles, @Param("uid") Long uid);
    //查询用户的角色
    List<Role> getRolesByUid(Long uid);
//    修改用户对应角色
    int updateUserRole(@Param("rid") int rid, @Param("uid") int uid);
//    查询用户角色对应的id
    int getUserRoleId(@Param("rid") int rid, @Param("uid") int uid);




    //查询所有角色分页
    List<Role> getAllRoles(@Param("start") Integer start,
                           @Param("count") Integer count,
                           @Param("role") Role role

    );
    //查询所有角色
    List<Role> getAllRolesDown();

    //通过id删除角色,多表操作
    int deleteRolesByIds(@Param("ids") String[] ids);
    //更新角色
    int updateRolesById(Role role);
    //添加角色
    int addRole(Role role);
    //查询角色通过名字
    List<Role> getRoleByName(@Param("name") String name);
    //查询角色通过英文名字
    List<Role> getRoleByEnName(@Param("name") String name);

    //得到角色id
    int getRoleId(Role role);

    //查询全部角色的数量
    int getRolesCount(Role role);





    //角色与权限绑定
    //查询role与priv
    List<Role> getRolePriv(@Param("role") int role,@Param("priv") int priv);
    //插入role与priv
    int addRolePriv(@Param("role") int role,@Param("priv") int priv);

//    //查询模块与操作
//    int addRolePriv(@Param("role") int role,@Param("priv") int priv);

    //查询权限
    List<Module> getRolePrivById(@Param("id") int id);

//    通过role的id查询priv表
    List<Role> getRolePrivByRole(@Param("role") int role);

//    通过role的id删除priv表中记录
    int deleteRolesPrivs(@Param("ids") String[] ids);






}
